1. Field of the Invention
The present invention relates to communications and, more particularly, to initiation of real-time media sessions. The invention is particularly useful for reducing latency in the initiation of “instant connect” or “push to talk” (PTT) sessions between data-capable mobile stations, such as 3G mobile stations for instance. But the invention can be advantageously applied in other scenarios as well.
2. Description of Related Art
In an exemplary wireless communication system, each mobile station may communicate via an air interface with a base transceiver station (BTS) and in turn with a base station controller (BSC). The BSC may then be coupled with a mobile switching center (MSC). Further, the BSC may be coupled with packet data serving node (PDSN) or other gateway, which may provide connectivity with an IP network, such as the public Internet or a private intranet (e.g., a wireless carrier's core IP network). The mobile station may thus communicate with entities on the IP network via a communication path comprising the air interface, the BTS, the BSC and the PDSN.
A mobile station can initiate packet-data communication by sending a packet-data origination request message over an air interface access channel, and via the BSC, to the MSC. Applying industry standards, the origination request message may include a “packet data” service option code that characterizes the requested communication as packet-data communication, as compared with traditional voice communication. When the MSC receives the origination request, it may then detect the “data” service option code and responsively send the message back to the BSC for handling. (Note that, commonly, the MSC and BSC may be physically co-located and perhaps integrated in a common entity, sometimes referred to as an MSC/BSC or simply “switch.”)
In turn, when the BSC receives the origination request from the MSC, the BSC may establish a radio link layer connection with the mobile station, by assigning the mobile station to operate on a particular traffic channel over the air interface (e.g., a fundamental traffic channel, and perhaps one or more supplemental channels). In addition, the BSC may pass the origination request to the PDSN. And the PDSN and mobile station may then negotiate with each other to establish a data-link layer connection, typically a point-to-point protocol (PPP) session over which packet data can be communicated between the mobile station and the PDSN.
As part of this process, the mobile station may obtain an IP address, to facilitate packet communications. For instance, the PDSN may assign an IP address to the mobile station, or the PDSN may communicate with a mobile-IP “home agent” to obtain an IP address for mobile station.
(Note that it may also be possible for a mobile station to engage more directly in packet-switched communications, rather than communicating packet data through a PPP connection. For instance, the BTS itself might sit as a node on an IP network, and the mobile station might send and receive individual packets via the BTS.)
In most wireless communication systems like this, the radio-link layer connection with a mobile station may time-out after a predefined period of inactivity. For instance, after 10 seconds in which no data is communicated to or from the mobile station over the air interface, the BSC may release the traffic channel that had been assigned to the mobile station. At the same time, however, the data-link layer (e.g., PPP) connection with the mobile station might remain.
Once the radio-link layer connection with a mobile station has timed out, the mobile station will be considered “dormant.” However, if its data-link layer connection still exists, the mobile station may still seek to send packet data to other entities, and other entities may seek to send packet data to the mobile station. When another entity seeks to send packet data to the mobile station, the BSC will page the mobile station over an air interface paging channel.
When a dormant mobile station receives a page indicative of an incoming data communication, or if the dormant mobile station seeks to send data, the radio link layer connection with the mobile station will need to be reestablished. To do so, the mobile station may send a message to the BSC over the access channel, requesting radio-link resources, and the BSC may then assign a traffic channel. The mobile station may then send or receive packet data over that traffic channel.
Some mobile stations may be equipped to automatically enter into an “always-on” data session upon power up, so as to provide IP network connectivity similar to that available through today's broadband landline modems. In particular, such a mobile station may be programmed to automatically send a “packet data” origination request upon power up and to then negotiate with the PDSN to establish a PPP session. After an initial period of inactivity, the radio-link layer connection with the mobile station may time-out. But, as indicated above, the mobile station may then acquire a radio-link connection when desired.
Note further that a mobile station that lacks both a radio-link and a data-link is considered to be in a “null” state, contrasted with a “dormant” state. In the null state, in order for the mobile station to engage in packet-data communication, it may conventionally send a packet data origination request in the manner described above.
A mobile station, like other packet-data terminals, can be further equipped to communicate real-time media, such as voice and/or video. For instance, the mobile station may include one or more media input mechanisms, such as a microphone or video camera, and may further include logic to digitize, encode and packetize media received through those mechanisms. Additionally, the mobile station may include logic to encapsulate the resulting packets with industry standard Real Time Protocol (RTP) headers and to transmit the resulting RTP packets to one or more designated addresses on the IP network.
Similarly, the mobile station may include logic to receive incoming RTP packets from the IP network, to assemble the packets in sequence, and to depacketize and decode the data carried by the packets so as to retrieve an underlying media signal. Further, the mobile station may include one or more media output mechanisms, such as a speaker or video display, through which to play out the incoming media signal to a user.
In order for a mobile station to establish RTP communication with another endpoint, the two endpoints will usually engage in setup signaling, which may take a variety of forms. For instance, according to the industry standard Session Initiation Protocol (SIP), an initiating endpoint may send to a SIP proxy server a SIP “INVITE” request message that designates a terminating SIP address. The INVITE may include a Session Description Protocol (SDP) block that characterizes the proposed session as an RTP session.
The proxy server may then query a SIP registry to determine an IP address of the terminating endpoint. And the proxy server may then forward the INVITE to that address. If the terminating endpoint agrees to establish the session, the terminating endpoint may then send a SIP “200 OK” message via the proxy server to the initiating endpoint. And the initiating endpoint may responsively send a SIP “ACK” message via the proxy server to the terminating endpoint. The endpoints may then begin to communicate RTP packets with each other.
Another way for two or more endpoints to establish and conduct a real-time media session with each other is through a communication server. The communication server may function to set up respective RTP sessions (“legs”) with each participating endpoint and to bridge together the legs so that the participants can communicate with each other.
For instance, an initiating endpoint may send to a proxy server an INVITE that requests an RTP session with one or more designated terminating endpoints, and the proxy server may forward the INVITE to the communication server. The communication server may then respond with a 200 OK to the initiating endpoint, and the initiating endpoint may respond with an ACK, thus establishing an RTP leg (initiating leg) between the initiating endpoint and the communication server.
At the same time, the communication server itself may send an INVITE via the proxy server respectively to each designated terminating endpoint and establish RTP legs (terminating legs) with each of those other endpoints. In turn, the communication server may bridge together the initiating leg with each of the terminating legs, so as to allow all of the endpoints to communicate with each other.
By establishing real-time media sessions in this manner between mobile stations, a wireless carrier can conveniently provide its subscribers with PTT service. In particular, each “PTT-capable” mobile station can preferably include a button or other actuating mechanism that a user can engage in order to initiate a PTT session with a designated group of one or more other users. When the user presses the PTT button, a PTT client application on the mobile station may responsively send an INVITE request to a proxy server. And the proxy server may forward the INVITE to a PTT server.
An SDP block or a “To” field in the INVITE request may identify or list a “communication group” for the user, i.e., a group of other users with whom the initiating user would like to communicate. The PTT server may then set up RTP legs with the initiating user and with each member of the group. And the PTT server may then bridge together the communication legs in a designated manner, so as to allow the members of the group to communicate with each other and with the initiating user.